AL PRIMERO, AL NUEVO, AL FINAL, AL ÚLTIMO usado en ABAP LOOP AT

您所在的位置:网站首页 abap at new at end of AL PRIMERO, AL NUEVO, AL FINAL, AL ÚLTIMO usado en ABAP LOOP AT

AL PRIMERO, AL NUEVO, AL FINAL, AL ÚLTIMO usado en ABAP LOOP AT

2023-09-30 23:37| 来源: 网络整理| 查看: 265

El uso de AL PRIMERO, AL NUEVO, AL FINAL, AL FINAL EN ABAP LOOP AT

Este artículo presenta principalmente algunos usos especiales en ABAP sobre las operaciones internas de la tabla.

AT FIRST ,AT NEW,AT END OF,AT LAST Todos son bloques de eventos del ciclo de la tabla interna en ABAP.

 

LOOP AT itab result ... AT FIRST. ... ENDAT. AT NEW comp1. ... ENDAT. AT NEW comp2. ... ENDAT. .... .... AT END OF comp2. ... ENDAT. AT END OF comp2. ... ENDAT. AT LAST. ... ENDAT. ENDLOOP.

 

AT FIRST      : El código que desencadena la ejecución cuando la primera fila de la tabla en el bucle. Solo ejecuta una vez.

 

 AT LAST       : El código se ejecuta cuando la última fila de datos en la tabla en el bucle. Es decir, ejecute toda la ejecución en LOOP antes de ejecutarla.

 AT NEW F     : Si los datos de todos los campos a la izquierda del campo F y F son inconsistentes con los datos de la línea anterior, se ejecuta el código.

 

Como: AAA AAA AAB Luego, el evento se activará en los primeros AAA y AAB.

 AT END OF F: Si los datos de todos los campos en el lado izquierdo del campo F y F son inconsistentes con los datos de la siguiente línea, se ejecuta el código.

 

 

Por lo tanto, tanto AT NEW F como AT END OF F no necesitan considerar el contenido del campo a la derecha del campo F, por lo que el contenido del campo después del campo F se establecerá en '*' de forma predeterminada, lo que significa que el contenido después de F es el mismo Sea o no, se considera como '*'.

 

Tomemos un ejemplo:

Hay datos en el área de trabajo antes de ejecutar AT NEW F. 

Observamos el uso de AT NEW F en el código real. 

Luego miramos los datos en el área de trabajo después de ejecutar AT NEW, y encontraremos que todos los datos en los campos detrás de matnr han desaparecido.

 

 

A continuación, explicamos el uso a través de un caso específico.

EN NUEVA F1: Suponiendo una tabla interna: COL1 COL2 COL3 A A A A A B A B C

 

 

¡EN NEW COL2, se disparará dos veces, no una! Primero ignore el valor de COL3 (todos los campos después de COL2), no afectará el desencadenante del evento.

 

Primer disparadorEs al atravesar la primera línea, porque la primera línea COL1, COL2 se compara con la línea anterior COL1, COL2, pero luego solo estamos atravesando la primera línea, y no hay una línea previa para que podamos comparar. En otras palabras, la línea anterior no existe o está vacía o sin inicializar, lo que significa que COL1 y COL2 en la primera línea no son lo mismo que COL1 y COL2 en la línea anterior, uno tiene datos y uno no tiene datos, por supuesto diferente , Por lo que AT NEW COL2 se activará en este momento y se ejecutará el siguiente código

 

Pero al atravesar el AAB de la segunda línea, ya que COL1 de la segunda línea = COL1 de la primera línea y COL2 de la segunda línea = COL2 de la primera línea, no se disparará EN NUEVA COL2 y continuará el ciclo.

 

Segundo disparadorAl atravesar la tercera línea, aunque COL1 de la tercera línea = COL1 de la segunda línea, el valor de COL2 es B, que no es igual a COL2 de la segunda línea, por lo que AT NEW COL2 se activará.

 

***AT END OF COL2***

Entonces, el mismo ejemplo, para AT END OF COL2, también se disparará dos veces, también ignorará el valor de COL3.

Primer disparadorAl atravesar la segunda línea, debido a que la A de la segunda línea COL2 no es igual a la B de la COL2 de la siguiente línea (tercera línea), se disparará AL FINAL DE COL2.

 

Segundo disparadorAl recorrer a la última fila, los campos COL1 y COL2 de la tercera fila se deben comparar con la siguiente fila, pero la siguiente fila no existe. Esto es similar a cuando se recorre a la primera fila de AT NEW COL2.

 

 

 

 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3